"""

通过面向对象爬取翻页的贴吧数据保存为html

流程 面向对象是一门编程思想
定义类
    1定义实例属性（静态的）
    url
    headers

    2定义实例方法（动作）
        发送请求的 方法
        保存数据的方法
        定义类的 run方法
kw=%E6%9E%97%E4%BF%8A%E6%9D%B0&pn=50
写代码  先构建整体业务逻辑
先完成 再完美
"""
import requests
# 继承基类
class TieBa(object):
    # 1定义实例属性（静态的）
    def __init__(self):
        # 确认初始url
        self.url="https://tieba.baidu.com/f?"
#         构建请求头
        self.headers={
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.82 Safari/537.36"
        }
#     2定义实例方法（动作) 发送请求的 方法
    def send_requests(self,params,word,num):
        response=requests.get(url=self.url,headers=self.headers,params=params)
        data=response.content.decode()
#       调用save_data方法 进行数据保存
        self.save_data(data,word,num)
#     保存数据的方法
    def save_data(self,data,word,num):
        with open(f"{word}{num+1}.html","w",encoding="utf-8")as f:
            f.write(data)
        print(f"{word}{num+1}.html保存成功!")
#     定义调用以上业务逻辑的方法 run方法
    def run(self):
        word=input("请输入要取得内容:")
        nums=int(input("请输入要爬取的页数:"))
        for num in range(nums):
            params={
                "kw":word,
                "pn": num*50
            }
            self.send_requests(params,word,num)
# 通过TieBa类 实例化一个对象叫做 tieba
tieba=TieBa()
tieba.run()













